// components/list-view-component/list-view-component.js
Component({

  options: {
    multipleSlots: true
  },

  /**
   * 组件的属性列表
   */
  properties: {
    top: {
      type: Number,
      value: 0
    },
    bottom: {
      type: Number,
      value: 0
    },
    margin: {
      type: Number,
      value: 10
    },
    //  是否开启下拉刷新[默认不开启]
    refreshEnabled:{
      type: Boolean,
      value: false
    },
    //  下拉刷新进行中 
    headerRefreshing:{
      type:Boolean,
      value: false
    },
    //  上拉刷新进行中
    footerRefreshing:{
      type:Boolean,
      value:false
    },
    //  上拉加载更多是否有效[默认不开启]
    upRefreshEnabled:{
      type:Boolean,
      value:false
    },
    //  是否支持刷新
    isRefreshing:{
      type:Boolean,
      value:false
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //  下拉刷新操作
    _refresh:function(){
      this.setData({
        headerRefreshing:true
      });
      this.triggerEvent('onRefresh', this.data.headerRefreshing, "list-view-refresh-status")
    },
    //  上拉加载更多
    _loadingMore:function(){

      if (!this.data.upRefreshEnabled){
        return;
      }

      if (this.data.footerRefreshing || this.data.headerRefreshing) {
        return;
      }

      this.setData({
        footerRefreshing: true,
        refreshEnabled: false
      });

      this.triggerEvent('loadingMore', this.data.footerRefreshing, "list-view-refresh-status")
    },
    //  list-view在滑动
    _scroll:function(event){

      if (!this.data.isRefreshing){
        return;
      }

      let detail = event.detail
      if (detail.scrollTop < 100 && !this.data.refreshEnabled && !this.data.footerRefreshing){
        this.setData({
          refreshEnabled: true
        });
      }
    }
  }
})
